package com.cff.pm.handler;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;
import com.cff.pm.util.HttpUtil;

public class HolidayHandler {
	private String date;
	private List<String> urls;

	static Map<String, Integer> map = new HashMap<>();
	static {
		map.put("20180101", 2);
		map.put("20180102", 0);
		map.put("20180103", 0);
		map.put("20180104", 0);
		map.put("20180105", 0);
		map.put("20180106", 1);
		map.put("20180107", 1);
		map.put("20180108", 0);
		map.put("20180109", 0);
		map.put("20180110", 0);
		map.put("20180111", 0);
		map.put("20180112", 0);
		map.put("20180113", 1);
		map.put("20180114", 1);
		map.put("20180115", 0);
		map.put("20180116", 0);
		map.put("20180117", 0);
		map.put("20180118", 0);
		map.put("20180119", 0);
		map.put("20180120", 1);
		map.put("20180121", 1);
		map.put("20180122", 0);
		map.put("20180123", 0);
		map.put("20180124", 0);
		map.put("20180125", 0);
		map.put("20180126", 0);
		map.put("20180127", 1);
		map.put("20180128", 1);
		map.put("20180129", 0);
		map.put("20180130", 0);
		map.put("20180131", 0);
		map.put("20180201", 0);
		map.put("20180202", 0);
		map.put("20180203", 1);
		map.put("20180204", 1);
		map.put("20180205", 0);
		map.put("20180206", 0);
		map.put("20180207", 0);
		map.put("20180208", 0);
		map.put("20180209", 0);
		map.put("20180210", 1);
		map.put("20180211", 0);
		map.put("20180212", 0);
		map.put("20180213", 0);
		map.put("20180214", 0);
		map.put("20180215", 2);
		map.put("20180216", 2);
		map.put("20180217", 2);
		map.put("20180218", 2);
		map.put("20180219", 2);
		map.put("20180220", 2);
		map.put("20180221", 2);
		map.put("20180222", 0);
		map.put("20180223", 0);
		map.put("20180224", 0);
		map.put("20180225", 1);
		map.put("20180226", 0);
		map.put("20180227", 0);
		map.put("20180228", 0);
		map.put("20180301", 0);
		map.put("20180302", 0);
		map.put("20180303", 1);
		map.put("20180304", 1);
		map.put("20180305", 0);
		map.put("20180306", 0);
		map.put("20180307", 0);
		map.put("20180308", 0);
		map.put("20180309", 0);
		map.put("20180310", 1);
		map.put("20180311", 1);
		map.put("20180312", 0);
		map.put("20180313", 0);
		map.put("20180314", 0);
		map.put("20180315", 0);
		map.put("20180316", 0);
		map.put("20180317", 1);
		map.put("20180318", 1);
		map.put("20180319", 0);
		map.put("20180320", 0);
		map.put("20180321", 0);
		map.put("20180322", 0);
		map.put("20180323", 0);
		map.put("20180324", 1);
		map.put("20180325", 1);
		map.put("20180326", 0);
		map.put("20180327", 0);
		map.put("20180328", 0);
		map.put("20180329", 0);
		map.put("20180330", 0);
		map.put("20180331", 1);
		map.put("20180401", 1);
		map.put("20180402", 0);
		map.put("20180403", 0);
		map.put("20180404", 0);
		map.put("20180405", 2);
		map.put("20180406", 2);
		map.put("20180407", 2);
		map.put("20180408", 0);
		map.put("20180409", 0);
		map.put("20180410", 0);
		map.put("20180411", 0);
		map.put("20180412", 0);
		map.put("20180413", 0);
		map.put("20180414", 1);
		map.put("20180415", 1);
		map.put("20180416", 0);
		map.put("20180417", 0);
		map.put("20180418", 0);
		map.put("20180419", 0);
		map.put("20180420", 0);
		map.put("20180421", 1);
		map.put("20180422", 1);
		map.put("20180423", 0);
		map.put("20180424", 0);
		map.put("20180425", 0);
		map.put("20180426", 0);
		map.put("20180427", 0);
		map.put("20180428", 0);
		map.put("20180429", 2);
		map.put("20180430", 2);
		map.put("20180501", 2);
		map.put("20180502", 0);
		map.put("20180503", 0);
		map.put("20180504", 0);
		map.put("20180505", 1);
		map.put("20180506", 1);
		map.put("20180507", 0);
		map.put("20180508", 0);
		map.put("20180509", 0);
		map.put("20180510", 0);
		map.put("20180511", 0);
		map.put("20180512", 1);
		map.put("20180513", 1);
		map.put("20180514", 0);
		map.put("20180515", 0);
		map.put("20180516", 0);
		map.put("20180517", 0);
		map.put("20180518", 0);
		map.put("20180519", 1);
		map.put("20180520", 1);
		map.put("20180521", 0);
		map.put("20180522", 0);
		map.put("20180523", 0);
		map.put("20180524", 0);
		map.put("20180525", 0);
		map.put("20180526", 1);
		map.put("20180527", 1);
		map.put("20180528", 0);
		map.put("20180529", 0);
		map.put("20180530", 0);
		map.put("20180531", 0);
		map.put("20180601", 0);
		map.put("20180602", 1);
		map.put("20180603", 1);
		map.put("20180604", 0);
		map.put("20180605", 0);
		map.put("20180606", 0);
		map.put("20180607", 0);
		map.put("20180608", 0);
		map.put("20180609", 1);
		map.put("20180610", 1);
		map.put("20180611", 0);
		map.put("20180612", 0);
		map.put("20180613", 0);
		map.put("20180614", 0);
		map.put("20180615", 0);
		map.put("20180616", 2);
		map.put("20180617", 2);
		map.put("20180618", 2);
		map.put("20180619", 0);
		map.put("20180620", 0);
		map.put("20180621", 0);
		map.put("20180622", 0);
		map.put("20180623", 1);
		map.put("20180624", 1);
		map.put("20180625", 0);
		map.put("20180626", 0);
		map.put("20180627", 0);
		map.put("20180628", 0);
		map.put("20180629", 0);
		map.put("20180630", 1);
		map.put("20180701", 1);
		map.put("20180702", 0);
		map.put("20180703", 0);
		map.put("20180704", 0);
		map.put("20180705", 0);
		map.put("20180706", 0);
		map.put("20180707", 1);
		map.put("20180708", 1);
		map.put("20180709", 0);
		map.put("20180710", 0);
		map.put("20180711", 0);
		map.put("20180712", 0);
		map.put("20180713", 0);
		map.put("20180714", 1);
		map.put("20180715", 1);
		map.put("20180716", 0);
		map.put("20180717", 0);
		map.put("20180718", 0);
		map.put("20180719", 0);
		map.put("20180720", 0);
		map.put("20180721", 1);
		map.put("20180722", 1);
		map.put("20180723", 0);
		map.put("20180724", 0);
		map.put("20180725", 0);
		map.put("20180726", 0);
		map.put("20180727", 0);
		map.put("20180728", 1);
		map.put("20180729", 1);
		map.put("20180730", 0);
		map.put("20180731", 0);
		map.put("20180801", 0);
		map.put("20180802", 0);
		map.put("20180803", 0);
		map.put("20180804", 1);
		map.put("20180805", 1);
		map.put("20180806", 0);
		map.put("20180807", 0);
		map.put("20180808", 0);
		map.put("20180809", 0);
		map.put("20180810", 0);
		map.put("20180811", 1);
		map.put("20180812", 1);
		map.put("20180813", 0);
		map.put("20180814", 0);
		map.put("20180815", 0);
		map.put("20180816", 0);
		map.put("20180817", 0);
		map.put("20180818", 1);
		map.put("20180819", 1);
		map.put("20180820", 0);
		map.put("20180821", 0);
		map.put("20180822", 0);
		map.put("20180823", 0);
		map.put("20180824", 0);
		map.put("20180825", 1);
		map.put("20180826", 1);
		map.put("20180827", 0);
		map.put("20180828", 0);
		map.put("20180829", 0);
		map.put("20180830", 0);
		map.put("20180831", 0);
		map.put("20180901", 1);
		map.put("20180902", 1);
		map.put("20180903", 0);
		map.put("20180904", 0);
		map.put("20180905", 0);
		map.put("20180906", 0);
		map.put("20180907", 0);
		map.put("20180908", 1);
		map.put("20180909", 1);
		map.put("20180910", 0);
		map.put("20180911", 0);
		map.put("20180912", 0);
		map.put("20180913", 0);
		map.put("20180914", 0);
		map.put("20180915", 1);
		map.put("20180916", 1);
		map.put("20180917", 0);
		map.put("20180918", 0);
		map.put("20180919", 0);
		map.put("20180920", 0);
		map.put("20180921", 0);
		map.put("20180922", 2);
		map.put("20180923", 2);
		map.put("20180924", 2);
		map.put("20180925", 0);
		map.put("20180926", 0);
		map.put("20180927", 0);
		map.put("20180928", 0);
		map.put("20180929", 0);
		map.put("20180930", 0);
		map.put("20181001", 2);
		map.put("20181002", 2);
		map.put("20181003", 2);
		map.put("20181004", 2);
		map.put("20181005", 2);
		map.put("20181006", 2);
		map.put("20181007", 2);
		map.put("20181008", 0);
		map.put("20181009", 0);
		map.put("20181010", 0);
		map.put("20181011", 0);
		map.put("20181012", 0);
		map.put("20181013", 1);
		map.put("20181014", 1);
		map.put("20181015", 0);
		map.put("20181016", 0);
		map.put("20181017", 0);
		map.put("20181018", 0);
		map.put("20181019", 0);
		map.put("20181020", 1);
		map.put("20181021", 1);
		map.put("20181022", 0);
		map.put("20181023", 0);
		map.put("20181024", 0);
		map.put("20181025", 0);
		map.put("20181026", 0);
		map.put("20181027", 1);
		map.put("20181028", 1);
		map.put("20181029", 0);
		map.put("20181030", 0);
		map.put("20181031", 0);
		map.put("20181101", 0);
		map.put("20181102", 0);
		map.put("20181103", 1);
		map.put("20181104", 1);
		map.put("20181105", 0);
		map.put("20181106", 0);
		map.put("20181107", 0);
		map.put("20181108", 0);
		map.put("20181109", 0);
		map.put("20181110", 1);
		map.put("20181111", 1);
		map.put("20181112", 0);
		map.put("20181113", 0);
		map.put("20181114", 0);
		map.put("20181115", 0);
		map.put("20181116", 0);
		map.put("20181117", 1);
		map.put("20181118", 1);
		map.put("20181119", 0);
		map.put("20181120", 0);
		map.put("20181121", 0);
		map.put("20181122", 0);
		map.put("20181123", 0);
		map.put("20181124", 1);
		map.put("20181125", 1);
		map.put("20181126", 0);
		map.put("20181127", 0);
		map.put("20181128", 0);
		map.put("20181129", 0);
		map.put("20181130", 0);
		map.put("20181201", 1);
		map.put("20181202", 1);
		map.put("20181203", 0);
		map.put("20181204", 0);
		map.put("20181205", 0);
		map.put("20181206", 0);
		map.put("20181207", 0);
		map.put("20181208", 1);
		map.put("20181209", 1);
		map.put("20181210", 0);
		map.put("20181211", 0);
		map.put("20181212", 0);
		map.put("20181213", 0);
		map.put("20181214", 0);
		map.put("20181215", 1);
		map.put("20181216", 1);
		map.put("20181217", 0);
		map.put("20181218", 0);
		map.put("20181219", 0);
		map.put("20181220", 0);
		map.put("20181221", 0);
		map.put("20181222", 1);
		map.put("20181223", 1);
		map.put("20181224", 0);
		map.put("20181225", 0);
		map.put("20181226", 0);
		map.put("20181227", 0);
		map.put("20181228", 0);
		map.put("20181229", 1);
		map.put("20181230", 1);
		map.put("20181231", 0);
	}

	HolidayHandler(String date) {
		this.date = date;
		urls = new ArrayList<>();
		urls.add("http://api.goseek.cn/Tools/holiday?date=" + date);
		urls.add("http://tool.bitefu.net/jiari/?d=" + date);
	}

	public boolean isHoliday() throws IOException {
		for (int i = 0; i < urls.size(); i++) {
			String url = urls.get(i);
			try {
				String data = HttpUtil.doGet(url);
				if (i == 0) {
					JSONObject json = JSONObject.parseObject(data);
					if (json == null)
						continue;
					Object dataFlag = json.get("data");
					if (dataFlag == null)
						continue;
					Integer dataFg = (Integer) dataFlag;
					if (dataFg.intValue() != 0)
						return true;
					else
						return false;
				} else if (i == 1) {
					int flag = Integer.parseInt(data);
					if (flag != 0)
						return true;
					else
						return false;
				}
			} catch (Exception e) {
				continue;
			}
		}
		if (map.get(date) != null) {
			Integer localFlag = map.get(date);
			if (localFlag.intValue() != 0)
				return true;
			return false;
		}
		return false;
	}

	public String getDate() {
		return date;
	}

	public void setDate(String date) {
		this.date = date;
	}

}
